<?php
namespace app\model\oa;

use app\model\BaseModel;

/**
 * 采购单模型
 */
class Purchase extends BaseModel
{
    // 设置当前模型对应的完整数据表名称（无需前缀，系统会自动加上配置的前缀）
    protected $name = 'purchase';

    // 设置主键名
    protected $pk = 'id';

    // 设置字段信息
    protected $schema = [
        'id' => 'int',
        'purchase_no' => 'string',
        'title' => 'string',
        'supplier_id' => 'int',
        'total_amount' => 'decimal',
        'status' => 'int',
        'apply_user_id' => 'int',
        'approve_user_id' => 'int',
        'remark' => 'string',
        'create_time' => 'int',
        'update_time' => 'int',
    ];

    // 关联供应商
    public function supplier()
    {
        return $this->belongsTo('app\model\Supplier', 'supplier_id', 'id');
    }

    // 关联申请人
    public function applyUser()
    {
        return $this->belongsTo('app\model\admin\User', 'apply_user_id', 'id');
    }

    // 关联审批人
    public function approveUser()
    {
        return $this->belongsTo('app\model\admin\User', 'approve_user_id', 'id');
    }

    // 关联采购明细
    public function purchasedItems()
    {
        return $this->hasMany('app\model\oa\Purchased', 'purchase_id', 'id');
    }

    // 状态搜索器
    public function searchStatusAttr($query, $value)
    {
        $query->where('status', $value);
    }

    // 采购单号搜索器
    public function searchPurchaseNoAttr($query, $value)
    {
        $query->where('purchase_no', 'like', '%' . $value . '%');
    }
}